iT邦幫忙

0

作業系統L4-執行緒

  • 分享至 

  • xImage
  •  

Process VS Thread

行程:

適合一次最多一個工作(unix shell)

優點:
缺點:
  • 不同行程不會共享記憶體
  • 行程間一部份停止,整個行程會一起停
  • 行程創建和內容轉換經濟成本高
  • 可擴展性低

執行緒:

適合一次可多個工作

平行(Parallelism)VS並行(Concurrency)

平行(Parallelism)

  • 資料平行(data parallelism):每個核心執行相同操作
  • 任務平行(task parallelism):每個核心執行不同操作

並行(Concurrency)

優點:
  • 應答:程式一部份停止,其他部分能持續運作
  • 資源分享:執行緒間公用行程資源,比共用記憶體和訊息分享還快
  • 經濟:比行程便宜
  • 可擴展性:可讓不同CPU平行執行
缺點:

User Thread VS kernel Thread

User Thread

使用者層次
  • 三種主要執行緒程式庫:
    • POSIX Pthreads
    • Win32執行緒
    • Java執行緒
優點:
  • 管理較快,成本低
缺點:
  • 行程中的某個Thread停止,整個行程會停下

kernel Thread

kernel管理
優點:
  • 行程中的某個Thread停止,整個行程不會停下
缺點:

管理較慢,成本高

多對一

優缺點同於User Thread

一對一

優缺點同於 kernel Thread

多對多

許多使用者執行緒對應到許多核心執行緒

二層模式

和多對多相似,但允許一個使用者執行緒被綁到核心執行緒

隱式執行緒(Implicit Threading)

執行緒池(Thread Pool)

先產生一些執行緒放入池中,等待工作
  • 現成的 Thread,執行較快
  • Thread數目限於pool
  • 執行和產生分開

OpenMP

  • 可在共用記憶體下的平行資源

Grand Central Dispatch

區塊放入分派佇列
  • 串列:每一個行程有自己的串列佇列,稱為主佇列
  • 並行:FIFO的順序移除,但一次可以移除數個

信號(signal)

通知行程,一個特殊的事件已經發生了,預設信號處理器(default signal handler)處理信號

目標執行緒(target thread)

被取消的執行緒,執行緒抵達取消點(cancellation point),後清除處理器(cleanup handle)會被呼叫
  • 非同步取消(asynchronous cancellation)立即終止目標執行緒
  • 延遲取消(deferred cancellation)允許目標執行緒週期地檢查它

執行緒的局部儲存(Thread-local storage , TLS)

  • 允許每一個執行緒有自己的資料拷貝

排班程式活化作用

輕量級行程(lightweight process, LWP)


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言